/*
 * Copyright (c) 2024 endless-sky
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#pragma once

#include "common_config_manager.h"

namespace El {
namespace Common {

class ConfigInit {

    ConfigInit();
    ~ConfigInit();

public:
    static ConfigInit &GetInstance();

    bool InitDefaultConfig();

private:
    // 初始化语言
    void InitLanguage();
    void InitRecord();
    void InitCloudModel();
    void InitStorage();
    void InitOSD();
    void InitNetwork();
    void InitFileManager();
    void InitVideoEncode();
    void InitAudioEncode();
    void InitRtsp();
    void InitRtmp();
    void InitNtp();
    void InitAudioVolume();
    void InitAudioInput();
    void InitUart();
    void InitSwitchControl();
    void InitUsers();
    void InitAlgoManager();
    void InitModelManager();
    void InitGB28181();
};

} // namespace Common
} // namespace El
